From: IOhannes m zmölnig Date: Wed, 10 Feb 2016 16:08:00 +0000 (+0100) Subject: starting to support both Release and Debug build X-Git-Tag: archive/raspbian/5.4.5_ds0-1+rpi1~1^2~316 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success/%22http:/www.example.com/cgi/success?a=commitdiff_plain;h=c546c5ef234c0a8493cb1e567df7865567d87a6f;p=juce.git starting to support both Release and Debug build --- diff --git a/debian/libbuilder/Makefile b/debian/libbuilder/Makefile index cf703340..c45e2181 100644 --- a/debian/libbuilder/Makefile +++ b/debian/libbuilder/Makefile @@ -5,7 +5,7 @@ includedir = $(prefix)/include SONAME=0.0.0 SHORTSONAME=0 -TARGET := libjuce.so + # (this disables dependency generation if multiple architectures are set) @@ -50,6 +50,9 @@ JUCELIBS := $(JUCELIBS) libpng JUCELIBS_CPPFLAGS := $(JUCELIBS_CPPFLAGS) -DJUCE_INCLUDE_PNGLIB_CODE=0 -DPNG_SKIP_SETJMP_CHECK JUCELIBS := $(JUCELIBS) ogg vorbis vorbisfile vorbisenc JUCELIBS_CPPFLAGS := $(JUCELIBS_CPPFLAGS) -DJUCE_INCLUDE_OGGVORBIS_CODE=0 +## Debian's libbox2d-dev is incompatible with JUCE's +#JUCELIBS := $(JUCELIBS) box2d +#JUCELIBS_CPPFLAGS := $(JUCELIBS_CPPFLAGS) -DJUCE_INCLUDE_BOX2D_CODE=0 JUCELIBS := $(JUCELIBS) zlib JUCELIBS_CPPFLAGS := $(JUCELIBS_CPPFLAGS) -DJUCE_INCLUDE_ZLIB_CODE=0 JUCELIBS := $(JUCELIBS) freetype2 @@ -64,13 +67,32 @@ JUCELIBS_LIBS := $(JUCELIBS_LIBS) $(shell pkg-config --libs $(JUCELIBS)) BINDIR := build LIBDIR := build -OBJDIR := build/intermediate/Release OUTDIR := build -JUCE_CPPFLAGS := $(DEPFLAGS) \ +OBJDIR_DEBUG := build/intermediate/Debug +TARGET_DEBUG := libjuce_d.so +JUCE_CFLAGS_DEBUG = -D "DEBUG=1" -D "_DEBUG=1" -g -ggdb -O0 +JUCE_LDLAGS_DEBUG = + +OBJDIR_RELEASE := build/intermediate/Release +TARGET_RELEASE := libjuce.so +JUCE_CFLAGS_RELEASE = -D "NDEBUG=1" -D "DEBUG=0" -O3 +JUCE_LDLAGS_RELEASE = -fvisibility=hidden + +ifeq ($(CONFIG),Debug) +TARGET := $(OUTDIR)/$(TARGET_DEBUG) +endif + +ifeq ($(CONFIG),Release) +TARGET := $(OUTDIR)/$(TARGET_RELEASE) +endif + +ifndef CONFIG + TARGET := $(OUTDIR)/$(TARGET_DEBUG) $(OUTDIR)/$(TARGET_RELEASE) +endif + +JUCE_CPPFLAGS := $(DEPFLAGS) $(JUCE_CPPFLAGS) \ -D "LINUX=1" \ - -D "NDEBUG=1" \ - -D "DEBUG=0" \ -D "JUCE_DLL_BUILD=1" \ $(JUCELIBS_CPPFLAGS) \ -I. \ @@ -78,37 +100,42 @@ JUCE_CPPFLAGS := $(DEPFLAGS) \ JUCE_CFLAGS += \ $(TARGET_ARCH) \ - -O3 \ -fPIC \ -fpermissive \ $(JUCELIBS_CFLAGS) JUCE_CXXFLAGS += -std=c++11 JUCE_LDFLAGS += \ - -rdynamic -shared -Wl,-soname,$(TARGET).$(SHORTSONAME) \ + -rdynamic -shared \ $(TARGET_ARCH) \ -fPIC \ $(JUCELIBS_LIBS) \ - -L$(BINDIR) \ - -L$(LIBDIR) \ -ldl \ -lpthread \ -lrt \ $(empty) -OBJECTS=$(SOURCES:%.cpp=$(OBJDIR)/%.o) +OBJECTS_RELEASE=$(SOURCES:%.cpp=$(OBJDIR_RELEASE)/%.o) +OBJECTS_DEBUG=$(SOURCES:%.cpp=$(OBJDIR_DEBUG)/%.o) .PHONY: all clean install install-lib install-headers install-pkgconfig test introjucer -all: $(OUTDIR)/$(TARGET) introjucer +all: $(TARGET) introjucer -$(OUTDIR)/$(TARGET): $(OBJECTS) $(RESOURCES) - @echo Linking juce_dll +$(OUTDIR)/$(TARGET_RELEASE): $(OBJECTS) $(RESOURCES) + @echo Linking $(TARGET_RELEASE) -@mkdir -p $(OUTDIR) - $(CXX) -o $@ $^ $(JUCE_LDFLAGS) $(LDFLAGS) $(TARGET_ARCH) + $(CXX) -o $@ $^ -Wl,-soname,$(TARGET_RELEASE).$(SHORTSONAME) $(JUCE_LDFLAGS) $(JUCE_LDFLAGS_RELEASE) $(LDFLAGS) $(TARGET_ARCH) +$(OBJDIR_RELEASE)/%.o: %.cpp libjuce_builddate.h + mkdir -p "$(OBJDIR_RELEASE)" + $(CXX) $(JUCE_CPPFLAGS) $(JUCE_CFLAGS_RELEASE) $(JUCE_CFLAGS) $(JUCE_CXXFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o "$@" -c "$<" -$(OBJDIR)/%.o: %.cpp libjuce_builddate.h - mkdir -p "$(OBJDIR)" - $(CXX) $(JUCE_CPPFLAGS) $(JUCE_CFLAGS) $(JUCE_CXXFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o "$@" -c "$<" +$(OUTDIR)/$(TARGET_DEBUG): $(OBJECTS) $(RESOURCES) + @echo Linking $(TARGET_DEBUG) + -@mkdir -p $(OUTDIR) + $(CXX) -o $@ $^ -Wl,-soname,$(TARGET_DEBUG).$(SHORTSONAME) $(JUCE_LDFLAGS) $(JUCE_LDFLAGS_DEBUG) $(LDFLAGS) $(TARGET_ARCH) +$(OBJDIR_DEBUG)/%.o: %.cpp libjuce_builddate.h + mkdir -p "$(OBJDIR_DEBUG)" + $(CXX) $(JUCE_CPPFLAGS) $(JUCE_CFLAGS_DEBUG) $(JUCE_CFLAGS) $(JUCE_CXXFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o "$@" -c "$<" libjuce_builddate.h: touch libjuce_builddate.h @@ -143,7 +170,7 @@ install: install-headers install-lib install-pkgconfig test: $(MAKE) -C $(DEMO_PATH) -introjucer: $(OUTDIR)/$(TARGET) +introjucer: $(OUTDIR)/$(TARGET_RELEASE) $(MAKE) -C $(INTROJUCER_PATH) CONFIG=Release CPPFLAGS="$(CPPFLAGS) $(JUCELIBS_CPPFLAGS)" CFLAGS="$(CFLAGS) $(JUCELIBS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(JUCELIBS_LIBS)" juce.pc: juce.pc.in